const mongoose = require("mongoose");
mongoose.connect("mongodb://127.0.0.1:27017/zhang",{
	serverSelectionTimeoutMS:10000
}).then(value=>{
	console.log("1-连接成功");
	// 1- 配置集合的约束（指定集合中的文档中的属性类型，默认值，是否允许重复，是否为必填项）
	const schema = new mongoose.Schema({
		// 文档中需要有userName属性
		userName:{
			// 类型是字符串
			type:String,
			// 不允许重复
			unique:true,
			// 不允许省略
			required:true
		},
		age:{
			type:Number,
			default:100
		},
		context:{
			// 类型是个数组且元素的类型为数字
			type:[Number]
		},
		qita:{
			// 不限制类型
			type:mongoose.Schema.Types.Mixed
		}
	},{
		versionKey:false
	});
	// 2- 创建model
	// 第一个参数是集合的名字，第二个参数是schema(约束）,第三个参数为最终的集合名字（如果省略该参数会将集合全部小写并以s结尾）
	const model = mongoose.model("userList",schema,"userList");
	// 3- 通过model添加数据
	// 3-1- 添加一条
	// model({
	// 	userName:"zhangsan3",
	// 	age:12,
	// 	context:[100],
	// 	qita:"说明"
	// }).save().then(value=>{
	// 	console.log("添加成功",value)
	// }).catch(err=>{
	// 	console.log("添加失败",err)
	// })
	
	// 3-2- 添加多条
	model.insertMany([
		{
			userName:"zhangsan1",
			age:121,
			context:[100],
			qita:"说明"
		},
		{
			userName:"zhangsan2",
			age:13,
			context:[100],
			qita:"说明"
		},
		{
			userName:"zhangsan3",
			age:12,
			context:[100],
			qita:"说明"
		},
		{
			userName:"zhangsan5",
			age:12,
			context:[100],
			qita:"说明"
		}
		
	]).then(value=>{
		console.log("添加成功",value);
	}).catch(reason=>{
		console.log("添加失败",reason);
	})
}).catch(err=>{
	console.log("连接失败",err)
})